package com.zp.base.admin.common.constant;

/**
 * @author zhangpeng
 * @create 2020/11/1 14:22
 */

/**
 * 错误码和错误信息定义类
 * 1.错误码定义规则为5位数字
 * 2.前两位表示业务场景，最后三位表示错误码。例如：10001  10:通用  000:系统未知异常
 * 3.维护错误码后需要维护错误描述，将他们定义为枚举形式
 * <p>
 * 错误码列表：
 * 10：通用
 * 001：参数格式校验
 * 11：商品
 * 12：订单
 * 13：购物车
 * 14：物流
 */
public enum BizCodeEnum {

    //统用异常
    UPLOAD_PHOTO_MAX_ERROR(00000, "图片大小不能超过1M"),
    UPLOAD_PHOTO_SUFFIX_ERROR(00001, "图片格式错误"),

    //系统相关异常
    UNKNOW_EXCEPTION(10000,"系统未知异常"),

    //参数相关异常,
    VALID_EXCEPTION(20000,"校验失败,参数有误"),
    USERNAME_NOT_NULL(20001, "用户名不能为空"),
    PASSWORD_NOT_NULL(20002, "密码不能为空"),
    CAPTCHA_NOT_NULL(20003, "验证码不能为空"),

    //登录异常
    LOGIN_FAIL(30001, "用户名或密码错误"),
    CAPTCHA_IS_ERROR(30002, "验证码错误！"),
    ACCOUNT_DISABLE(30003,"账户被冻结，请联系管理员！"),
    SESSION_IS_INVALID(30004, "会话已失效，情刷新页面！"),
    USER_SESSION_EXPIRED(30005,"还未登录或会话失效，请重新登录！"),
    USER_NOT_EXIST(30006, "用户不存在！"),
    PASSWORD_IS_ERROR(30007, "密码错误！"),
    ROLE_IS_DISABLE(30008, "该用户所属角色状态不可用，请联系管理员！"),
    ROLE_HAS_NO_PERMISSIONS(30009, "该用户所属角色无可用权限，请联系管理员！"),


    //菜单管理
    ADD_MENU_FAIL_SERVER_EXCEPTION(40000, "添加菜单失败，请联系管理员！"),
    UPDATE_MENU_FAIL_SERVER_EXCEPTION(40001, "修改菜单失败，请联系管理员！"),
    DELETE_MENU_ID_NOT_NULL(40002, "删除菜单失败，菜单ID不能为空！"),
    DELETE_MENU_HAS_CHILDREN_MENU(40003, "改菜单下有子菜单，不允许删除！"),
    DELETE_MENU_FAIL_SERVER_EXCEPTION(40004, "删除菜单失败，请联系管理员！"),


    //角色管理
    ADD_ROLE_FAIL_SERVER_EXCEPTION(50000, "添加角色失败，请联系管理员！"),
    UPDATE_ROLE_FAIL_SERVER_EXCEPTION(50001, "修改角色失败，请联系管理员！"),
    DELETE_ROLE_FAIL_SERVER_EXCEPTION(50002, "删除角色失败，请联系管理员！"),
    DELETE_ROLE_FAIL_HAS_USER(50003, "删除角色失败，有用户拥有该角色！"),

    //用户管理
    ADD_USER_FAIL_SERVER_EXCEPTION(60000, "用户添加失败，请联系管理员！"),
    USERNAME_IS_EXISTS(60001, "用户名已存在，请更换一个！"),
    UPDATE_USER_FAIL_SERVER_EXCEPTION(60002, "修改用户失败，请联系管理员！"),
    DELETE_USER_ID_NOT_NULL(60003, "删除用户失败，用户ID不能为空！"),
    DELETE_USER_FAIL_SERVER_EXCEPTION(60004, "该用户存在关联数据，不允许删除！"),

    //修改密码相关
    ADMIN_USER_UPDATE_PWD_ERROR(70000, "旧密码错误！"),
    ADMIN_USER_UPDATE_PWD_EMPTY(70001, "新密码不能为空！"),

    //日志管理相关
    DELETE_LOG_ERROR(80000, "删除日志失败，请联系管理员！"),
    DELETE_LOG_NO_IDS(80001, "删除日志失败，请至少选择要删除的一条日志！"),

    //备份数据库相关
    DATABASE_BACKUP_ERROR(90000, "备份数据库失败！"),
    DELETE_DATABASE_BACKUP_NO_IDS(90001, "删除数据备份失败，请至少选择要删除的一条数据备份信息！"),
    DELETE_DATABASE_BACKUP_ERROR(90002, "删除数据备份失败，请联系管理员！"),
    DATABASE_RESTORE_ERROR(90002, "数据库数据还原失败，请联系管理员！"),
    ;



    private Integer code;
    private String msg;

    BizCodeEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}
